package com.company.oa.common.utils;

import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import java.util.Arrays;
import java.util.List;

/**
 * 安全工具类
 */
public class SecurityUtils {

    /**
     * 获取当前登录用户ID
     */
    public static Long getUserId() {
        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
        if (authentication == null || !authentication.isAuthenticated()) {
            return null;
        }
        Object principal = authentication.getPrincipal();
        if (principal instanceof Long) {
            return (Long) principal;
        }
        return null;
    }

    /**
     * 获取当前登录用户名
     */
    public static String getUsername() {
        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
        if (authentication == null || !authentication.isAuthenticated()) {
            return null;
        }
        return authentication.getName();
    }

    /**
     * 获取当前登录用户部门ID
     */
    public static Long getDeptId() {
        // TODO: 从认证信息中获取部门ID
        return 1L;
    }

    /**
     * 获取当前登录用户部门名称
     */
    public static String getDeptName() {
        // TODO: 从认证信息中获取部门名称
        return "默认部门";
    }

    /**
     * 获取当前登录用户角色ID列表
     */
    public static List<Long> getRoleIds() {
        // TODO: 从认证信息中获取角色ID列表
        return Arrays.asList(1L, 2L);
    }
}